const dns = require("dns"); // 这个模块是通过 UDP 协议来实现的

// 通过操作系统去进行域名解析， 没有网络通讯
dns.lookup("www.baidu.com", (err, address, family) => {
  // libuv 中是同步调用了 getaddrinfo(3) 这个方法，由于是同步的，可能出现异常导致阻塞
  console.log(err);
  console.log("地址: %j 地址族: IPv%s", address, family);
});

// 这个不受本地的 host 文件的影响，会从外网中获取， 没有调用 getaddrinfo(3)， 通过网络， 不会对 nodejs 产生阻塞
dns.resolve("www.baidu.com", (err, records) => {
  console.log(records);
});
